home *** CD-ROM | disk | FTP | other *** search
/ SPACE 2 / SPACE - Library 2 - Volume 1.iso / program / 575 / okami13b / system.doc < prev    next >
Encoding:
Text File  |  1991-12-15  |  1.8 KB  |  50 lines

  1.  
  2.     ===============================================
  3.  
  4. @(#)       OKAMI SHELL VERSION 1.3 - SYSTEM-FUNKTION
  5.  
  6.     ===============================================
  7.             Stand: 29.6.91
  8.  
  9.  
  10. Um die Okami-Shell von eigenen Programmen aus aufrufen zu können, gibt es
  11. die Funktion system. Beispiel:
  12.  
  13.     DiskDir()
  14.     {
  15.       extern int system();
  16.   
  17.       system("ls a:\*");
  18.       system("df a:");  
  19.     }
  20.  
  21. Durch Aufruf der Funktion DiskDir werden Inhalt und freier Speicherplatz von
  22. Laufwerk a: ausgegeben. Dies wird erreicht durch Aufruf der Shell mit den
  23. Kommandos `ls a:\*' und `df a:'.
  24.  
  25. Um die system-Funktion benutzen zu können, muß die Datei system.c einge-
  26. bunden werden. Dazu gibt es folgende Möglichkeiten:
  27. 1. #include "system.c"
  28. 2. Kompilieren der Datei system.c und Mit-Linken der Objektdatei system.o.
  29. 3. Kompilieren der Datei system.c und Einbinden der Objektdatei system.o
  30.    in eine Library.
  31.  
  32. Der Aufruf der Shell erfolgt über den _shell_p-Zeiger. Daher sollte auch
  33. jede andere system-Funktion aus diversen Compiler-Libraries, die diesen
  34. Zeiger benutzt, funktionieren.
  35. Das bedeutet aber auch, daß man auf diese Weise die Shell nur aufrufen kann,
  36. wenn sie sich bereits im Speicher befindet, wenn also das Programm, das
  37. system() benutzt, von der Shell gestartet wurde. In anderen Fällen kann
  38. die Shell mit der Gemdos-Funktion Pexec() gestartet werden.
  39.  
  40. Ein Beispielprogramm ist in der Datei system.c enthalten. Um es zu akti-
  41. vieren, muß in der Datei
  42.     #define TEST 0
  43. auf
  44.     #define TEST 1
  45. umgeändert werden. Für ein weiteres Beispiel siehe die Datei gem.c .
  46.  
  47. system.c sollte mit jedem C-Compiler funktionieren, der nicht auf Prototypen
  48. besteht. Ggfs. muß anstelle von osbind.h eine andere Header-Datei einge-
  49. bunden werden, nämlich die, die die Gemdos-Funktion Super() definiert.
  50.